package controller;

import java.util.ArrayList;
import java.util.List;

import model.Comision;
import beans.ComisionBean;
import dao.HibernateComisionDAO;
import dto.ComisionDTO;

public class AdministradorComision {
	private static AdministradorComision instancia;
	private AdministradorComision(){
		
	}
	public static AdministradorComision getInstancia(){
		if(instancia==null)
			instancia=new AdministradorComision();
		return instancia;
	}
	public List<ComisionBean> fromModelTOBean(List<Comision> comisiones) {
		List<ComisionBean> comisionesBean=new ArrayList<ComisionBean>();
		for (Comision comision : comisiones) {
			ComisionBean comisionBean=fromModelTOBean(comision);
			comisionesBean.add(comisionBean);
		}
		return comisionesBean;
	}
	
	public ComisionBean fromModelTOBean(Comision comision) {
		ComisionBean comisionBean=null;
		if(comision!=null){
		comisionBean=new ComisionBean();
		comisionBean.setIdComision(comision.getId());
		comisionBean.setFecha(comision.getFecha());
		comisionBean.setImporte(comision.getImporte());
		comisionBean.setMozo(AdministradorMozo.getInstancia().fromModelTOBean(comision.getMozo()));
		}
		return comisionBean;
	}
	public List<Comision> fromDTOTOModel(List<ComisionDTO> comisionesDTO) {
		List<Comision> comisiones=new ArrayList<Comision>();
		for (ComisionDTO comisionDTO : comisionesDTO) {
			Comision comision=fromDTOTOModel(comisionDTO);
			comisiones.add(comision);
		}
		return comisiones;
	}
	public Comision fromDTOTOModel(ComisionDTO comisionDTO) {
		Comision comision=null;
		if(comisionDTO!=null){
		comision=new Comision();
		comision.setId(comisionDTO.getId());
		comision.setFecha(comisionDTO.getFecha());
		comision.setImporte(comisionDTO.getImporte());
		comision.setMozo(AdministradorMozo.getInstancia().fromDTOTOModel(comisionDTO.getMozo()));
		}
		return comision;
	}
	
	public List<ComisionDTO> fromModelTODTO(List<Comision> comisiones) {
		List<ComisionDTO> comisionesDTO=new ArrayList<ComisionDTO>();
		for (Comision comision : comisiones) {
			ComisionDTO comisionDTO=fromModelTODTO(comision);
			comisionesDTO.add(comisionDTO);
		}
		return comisionesDTO;
	}
	public ComisionDTO fromModelTODTO(Comision comision) {
		ComisionDTO comisionDTO=null;
		if(comision!=null){
			comisionDTO=new ComisionDTO();
			comisionDTO.setId(comision.getId());
			comisionDTO.setFecha(comision.getFecha());
			comisionDTO.setImporte(comision.getImporte());
			comisionDTO.setMozo(AdministradorMozo.getInstancia().fromModelTODTO(comision.getMozo()));
		}
		return comisionDTO;
	}
	
	
	public List<Comision> fromBeanTOModel(List<ComisionBean> comisionesBean) {
		List<Comision> comisiones=new ArrayList<Comision>();
		for (ComisionBean comisionBean : comisionesBean) {
			Comision comision=fromBeanTOModel(comisionBean);
			comisiones.add(comision);
		}
		return comisiones;
	}
	private Comision fromBeanTOModel(ComisionBean comisionBean) {
		Comision comision=null;
		if(comisionBean!=null){
		comision=new Comision();
		comision.setId(comisionBean.getIdComision());
		comision.setFecha(comisionBean.getFecha());
		comision.setImporte(comisionBean.getImporte());
		comision.setMozo(AdministradorMozo.getInstancia().fromBeanTOModel(comisionBean.getMozo()));
		}
		return comision;
	}
	public Comision buscarComision(Comision comision) {
		ComisionBean ab=fromModelTOBean(comision);
		ab=HibernateComisionDAO.getInstancia().buscarComision(ab);
		return  fromBeanTOModel(ab);
	}
	public void grabarComision(Comision comision) {
		ComisionBean ab=fromModelTOBean(comision);
		HibernateComisionDAO.getInstancia().persist(ab);
		
	}
	public Comision buscarUltimaComision() {
		ComisionBean comision=HibernateComisionDAO.getInstancia().buscarUltimaComision();
		return fromBeanTOModel(comision);
	}
	
}
